package com.ruoyi.st.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 订单详情 (st_order_detail)对象 st_order_detail
 * 
 * @author ruoyi
 * @date 2024-11-06
 */
public class StOrderDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键，唯一标识订单详情 */
    private Long id;

    /** 用户ID，外键，与用户表关联 */
    @Excel(name = "用户ID，外键，与用户表关联")
    private Long userId;

    /** 演出ID，外键，与演出详情表关联 */
    @Excel(name = "演出ID，外键，与演出详情表关联")
    private Long perfDetId;

    /** 地址ID，外键，与地址详情表关联 */
    @Excel(name = "地址ID，外键，与地址详情表关联")
    private Long addrDetId;

    /** 地址ID，外键，与物流信息表关联 */
    @Excel(name = "地址ID，外键，与物流信息表关联")
    private Long logisticsInfoId;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String orderStatus;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 预计送达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计送达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date estimatedDelivery;

    /** 付款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private String payMethod;

    /** 收获时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收获时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date receiveTime;

    /** 配送方式 */
    @Excel(name = "配送方式")
    private String deliveryMethod;

    /** 截止取票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止取票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cutoffTime;

    /** 取票地点 */
    @Excel(name = "取票地点")
    private String pickupLocation;

    /** 演出名称 */
    @Excel(name = "演出名称")
    private String perfName;

    /** 演出时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "演出时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date perfTime;

    /** 取票二维码图片URL */
    @Excel(name = "取票二维码图片URL")
    private String ticketQrCode;

    /** 二维码编号 */
    @Excel(name = "二维码编号")
    private String ticketQrId;

    /** 观演人ID列表,存储观演人ID */
    @Excel(name = "观演人ID列表,存储观演人ID")
    private String attendeeIds;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setPerfDetId(Long perfDetId) 
    {
        this.perfDetId = perfDetId;
    }

    public Long getPerfDetId() 
    {
        return perfDetId;
    }
    public void setAddrDetId(Long addrDetId) 
    {
        this.addrDetId = addrDetId;
    }

    public Long getAddrDetId() 
    {
        return addrDetId;
    }
    public void setLogisticsInfoId(Long logisticsInfoId) 
    {
        this.logisticsInfoId = logisticsInfoId;
    }

    public Long getLogisticsInfoId() 
    {
        return logisticsInfoId;
    }
    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }
    public void setOrderNumber(String orderNumber) 
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber() 
    {
        return orderNumber;
    }
    public void setOrderTime(Date orderTime) 
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime() 
    {
        return orderTime;
    }
    public void setEstimatedDelivery(Date estimatedDelivery) 
    {
        this.estimatedDelivery = estimatedDelivery;
    }

    public Date getEstimatedDelivery() 
    {
        return estimatedDelivery;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setPayMethod(String payMethod) 
    {
        this.payMethod = payMethod;
    }

    public String getPayMethod() 
    {
        return payMethod;
    }
    public void setReceiveTime(Date receiveTime) 
    {
        this.receiveTime = receiveTime;
    }

    public Date getReceiveTime() 
    {
        return receiveTime;
    }
    public void setDeliveryMethod(String deliveryMethod) 
    {
        this.deliveryMethod = deliveryMethod;
    }

    public String getDeliveryMethod() 
    {
        return deliveryMethod;
    }
    public void setCutoffTime(Date cutoffTime) 
    {
        this.cutoffTime = cutoffTime;
    }

    public Date getCutoffTime() 
    {
        return cutoffTime;
    }
    public void setPickupLocation(String pickupLocation) 
    {
        this.pickupLocation = pickupLocation;
    }

    public String getPickupLocation() 
    {
        return pickupLocation;
    }
    public void setPerfName(String perfName) 
    {
        this.perfName = perfName;
    }

    public String getPerfName() 
    {
        return perfName;
    }
    public void setPerfTime(Date perfTime) 
    {
        this.perfTime = perfTime;
    }

    public Date getPerfTime() 
    {
        return perfTime;
    }
    public void setTicketQrCode(String ticketQrCode) 
    {
        this.ticketQrCode = ticketQrCode;
    }

    public String getTicketQrCode() 
    {
        return ticketQrCode;
    }
    public void setTicketQrId(String ticketQrId) 
    {
        this.ticketQrId = ticketQrId;
    }

    public String getTicketQrId() 
    {
        return ticketQrId;
    }
    public void setAttendeeIds(String attendeeIds) 
    {
        this.attendeeIds = attendeeIds;
    }

    public String getAttendeeIds() 
    {
        return attendeeIds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("perfDetId", getPerfDetId())
            .append("addrDetId", getAddrDetId())
            .append("logisticsInfoId", getLogisticsInfoId())
            .append("orderStatus", getOrderStatus())
            .append("orderNumber", getOrderNumber())
            .append("orderTime", getOrderTime())
            .append("estimatedDelivery", getEstimatedDelivery())
            .append("createTime", getCreateTime())
            .append("payTime", getPayTime())
            .append("payMethod", getPayMethod())
            .append("receiveTime", getReceiveTime())
            .append("deliveryMethod", getDeliveryMethod())
            .append("cutoffTime", getCutoffTime())
            .append("pickupLocation", getPickupLocation())
            .append("perfName", getPerfName())
            .append("perfTime", getPerfTime())
            .append("ticketQrCode", getTicketQrCode())
            .append("ticketQrId", getTicketQrId())
            .append("attendeeIds", getAttendeeIds())
            .toString();
    }
}
